/**
 * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Autogenerated file -- DO NOT EDIT!

% Compiler::intrinsics.each do |intrinsic|
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
#define <%= intrinsic.entrypoint_name %>_ENABLED 1
% end

enum class IntrinsicId {
% Compiler::intrinsics.select{ |x| !x.is_irtoc? }.each do |intrinsic|
    <%= intrinsic.entrypoint_name %>,
% end
    LIB_CALL_FMOD,
    LIB_CALL_FMODF,
    LIB_CALL_MEM_COPY,
#include "intrinsics_stub.inl.h"
    COUNT,

    // Irtoc intrinsics
% Compiler::intrinsics.select(&:is_irtoc?).each do |intrinsic|
    <%= intrinsic.entrypoint_name %>,
% end

ECMA_LDNAN_PREF_NONE,
ECMA_LDINFINITY_PREF_NONE,
ECMA_LDGLOBALTHIS_PREF_NONE,
ECMA_LDUNDEFINED_PREF_NONE,
ECMA_LDNULL_PREF_NONE,
ECMA_LDSYMBOL_PREF_NONE,
ECMA_LDGLOBAL_PREF_NONE,
ECMA_LDTRUE_PREF_NONE,
ECMA_LDFALSE_PREF_NONE,
ECMA_THROWDYN_PREF_NONE,
ECMA_RETHROWDYN_PREF_NONE,
ECMA_TYPEOFDYN_PREF_NONE,
ECMA_LDLEXENVDYN_PREF_NONE,
ECMA_POPLEXENVDYN_PREF_NONE,
ECMA_GETUNMAPPEDARGS_PREF_NONE,
ECMA_GETPROPITERATOR_PREF_NONE,
ECMA_ASYNCFUNCTIONENTER_PREF_NONE,
ECMA_LDHOLE_PREF_NONE,
ECMA_RETURNUNDEFINED_PREF_NONE,
ECMA_CREATEEMPTYOBJECT_PREF_NONE,
ECMA_CREATEEMPTYARRAY_PREF_NONE,
ECMA_GETITERATOR_PREF_V8_V8,
ECMA_GETITERATOR_PREF_NONE,
ECMA_GETASYNCITERATOR_PREF_NONE,
ECMA_THROWTHROWNOTEXISTS_PREF_NONE,
ECMA_THROWPATTERNNONCOERCIBLE_PREF_NONE,
ECMA_LDHOMEOBJECT_PREF_NONE,
ECMA_THROWDELETESUPERPROPERTY_PREF_NONE,
ECMA_DEBUGGER_PREF_NONE,
ECMA_ADD2DYN_PREF_V8,
ECMA_SUB2DYN_PREF_V8,
ECMA_MUL2DYN_PREF_V8,
ECMA_DIV2DYN_PREF_V8,
ECMA_MOD2DYN_PREF_V8,
ECMA_EQDYN_PREF_V8,
ECMA_NOTEQDYN_PREF_V8,
ECMA_LESSDYN_PREF_V8,
ECMA_LESSEQDYN_PREF_V8,
ECMA_GREATERDYN_PREF_V8,
ECMA_GREATEREQDYN_PREF_V8,
ECMA_SHL2DYN_PREF_V8,
ECMA_SHR2DYN_PREF_V8,
ECMA_ASHR2DYN_PREF_V8,
ECMA_AND2DYN_PREF_V8,
ECMA_OR2DYN_PREF_V8,
ECMA_XOR2DYN_PREF_V8,
ECMA_TONUMBER_PREF_V8,
ECMA_TONUMERIC_PREF_V8,
ECMA_NEGDYN_PREF_V8,
ECMA_NOTDYN_PREF_V8,
ECMA_INCDYN_PREF_V8,
ECMA_DECDYN_PREF_V8,
ECMA_EXPDYN_PREF_V8,
ECMA_ISINDYN_PREF_V8,
ECMA_INSTANCEOFDYN_PREF_V8,
ECMA_STRICTNOTEQDYN_PREF_V8,
ECMA_STRICTEQDYN_PREF_V8,
ECMA_RESUMEGENERATOR_PREF_V8,
ECMA_GETRESUMEMODE_PREF_V8,
ECMA_CREATEGENERATOROBJ_PREF_V8,
ECMA_SETGENERATORSTATE_PREF_V8_IMM8,
ECMA_CREATEASYNCGENERATOROBJ_PREF_V8,
ECMA_THROWCONSTASSIGNMENT_PREF_V8,
ECMA_GETMETHOD_PREF_ID32_V8,
ECMA_GETTEMPLATEOBJECT_PREF_V8,
ECMA_GETNEXTPROPNAME_PREF_V8,
ECMA_CALLARG0DYN_PREF_V8,
ECMA_THROWIFNOTOBJECT_PREF_V8,
ECMA_CLOSEITERATOR_PREF_V8,
ECMA_COPYMODULE_PREF_V8,
ECMA_SUPERCALLSPREAD_PREF_V8,
ECMA_DELOBJPROP_PREF_V8_V8,
ECMA_NEWOBJSPREADDYN_PREF_V8_V8,
ECMA_CREATEITERRESULTOBJ_PREF_V8_V8,
ECMA_SUSPENDGENERATOR_PREF_V8_V8,
ECMA_SUSPENDASYNCGENERATOR_PREF_V8,
ECMA_ASYNCFUNCTIONAWAITUNCAUGHT_PREF_V8_V8,
ECMA_THROWUNDEFINEDIFHOLE_PREF_V8_V8,
ECMA_CALLARG1DYN_PREF_V8_V8,
ECMA_COPYDATAPROPERTIES_PREF_V8_V8,
ECMA_STARRAYSPREAD_PREF_V8_V8,
ECMA_SETOBJECTWITHPROTO_PREF_V8_V8,
ECMA_LDOBJBYVALUE_PREF_V8_V8,
ECMA_STOBJBYVALUE_PREF_V8_V8,
ECMA_STOWNBYVALUE_PREF_V8_V8,
ECMA_LDSUPERBYVALUE_PREF_V8_V8,
ECMA_STSUPERBYVALUE_PREF_V8_V8,
ECMA_LDOBJBYINDEX_PREF_IMM8_V8,
ECMA_LDOBJBYINDEX_PREF_IMM16_V8,
ECMA_LDOBJBYINDEX_PREF_V8_IMM32,
ECMA_STOBJBYINDEX_PREF_IMM8_V8,
ECMA_STOBJBYINDEX_PREF_IMM16_V8,
ECMA_STOBJBYINDEX_PREF_V8_IMM32,
ECMA_STOWNBYINDEX_PREF_IMM8_V8,
ECMA_STOWNBYINDEX_PREF_IMM16_V8,
ECMA_STOWNBYINDEX_PREF_V8_IMM32,
ECMA_CALLSPREADDYN_PREF_V8_V8_V8,
ECMA_ASYNCFUNCTIONRESOLVE_PREF_V8_V8_V8,
ECMA_ASYNCFUNCTIONREJECT_PREF_V8_V8_V8,
ECMA_ASYNCGENERATORRESOLVE_PREF_V8,
ECMA_ASYNCGENERATORREJECT_PREF_V8,
ECMA_CALLARGS2DYN_PREF_V8_V8_V8,
ECMA_CALLARGS3DYN_PREF_V8_V8_V8_V8,
ECMA_DEFINEGETTERSETTERBYVALUE_PREF_V8_V8_V8_V8,
ECMA_NEWOBJDYNRANGE_PREF_IMM16_V8,
ECMA_CALLIRANGEDYN_PREF_IMM16_V8,
ECMA_CALLITHISRANGEDYN_PREF_IMM16_V8,
ECMA_SUPERCALL_PREF_IMM16_V8,
ECMA_CREATEOBJECTWITHEXCLUDEDKEYS_PREF_IMM16_V8_V8,
ECMA_DEFINEFUNCDYN_PREF_ID16_IMM16_V8,
ECMA_DEFINENCFUNCDYN_PREF_ID16_IMM16_V8,
ECMA_DEFINEGENERATORFUNC_PREF_ID16_IMM16_V8,
ECMA_DEFINEASYNCFUNC_PREF_ID16_IMM16_V8,
ECMA_DEFINEASYNCGENERATORFUNC_PREF_ID16_V8,
ECMA_DEFINEMETHOD_PREF_ID16_IMM16_V8,
ECMA_NEWLEXENVDYN_PREF_IMM16,
ECMA_COPYLEXENVDYN_PREF_NONE,
ECMA_COPYRESTARGS_PREF_IMM16,
ECMA_CREATEARRAYWITHBUFFER_PREF_IMM16,
ECMA_CREATEOBJECTHAVINGMETHOD_PREF_IMM16,
ECMA_THROWIFSUPERNOTCORRECTCALL_PREF_IMM16,
ECMA_CREATEOBJECTWITHBUFFER_PREF_IMM16,
ECMA_LDLEXVARDYN_PREF_IMM4_IMM4,
ECMA_LDLEXVARDYN_PREF_IMM8_IMM8,
ECMA_LDLEXVARDYN_PREF_IMM16_IMM16,
ECMA_STLEXVARDYN_PREF_IMM4_IMM4_V8,
ECMA_STLEXVARDYN_PREF_IMM8_IMM8_V8,
ECMA_STLEXVARDYN_PREF_IMM16_IMM16_V8,
ECMA_DEFINECLASSWITHBUFFER_PREF_ID16_IMM16_IMM16_V8_V8,
ECMA_IMPORTMODULE_PREF_ID32,
ECMA_STMODULEVAR_PREF_ID32,
ECMA_TRYLDGLOBALBYNAME_PREF_ID32,
ECMA_TRYSTGLOBALBYNAME_PREF_ID32,
ECMA_LDGLOBALVAR_PREF_ID32,
ECMA_STGLOBALVAR_PREF_ID32,
ECMA_STGLOBALLET_PREF_ID32,
ECMA_LDOBJBYNAME_PREF_ID32_V8,
ECMA_STOBJBYNAME_PREF_ID32_V8,
ECMA_STOWNBYNAME_PREF_ID32_V8,
ECMA_LDSUPERBYNAME_PREF_ID32_V8,
ECMA_STSUPERBYNAME_PREF_ID32_V8,
ECMA_LDMODVARBYNAME_PREF_ID32_V8,
ECMA_TOBOOLEAN_PREF_NONE,
ECMA_NEGATE_PREF_NONE,
ECMA_ISTRUE_PREF_NONE,
ECMA_ISFALSE_PREF_NONE,
ECMA_ISUNDEFINED_PREF_NONE,
ECMA_ISCOERCIBLE_PREF_NONE,
ECMA_JFALSE_PREF_IMM8,
ECMA_JFALSE_PREF_IMM16,
ECMA_JFALSE_PREF_IMM32,
ECMA_JTRUE_PREF_IMM8,
ECMA_JTRUE_PREF_IMM16,
ECMA_JTRUE_PREF_IMM32,
ECMA_RETURN_DYN_PREF_NONE,
ECMA_ITERNEXT_PREF_V8,
ECMA_GETMODULENAMESPACE_PREF_ID32,
ECMA_LDMODULEVAR_PREF_ID32_IMM8,
ECMA_STCONSTTOGLOBALRECORD_PREF_ID32,
ECMA_STLETTOGLOBALRECORD_PREF_ID32,
ECMA_GETITERATORNEXT_PREF_V8_V8,
ECMA_CREATEREGEXPWITHLITERAL_PREF_ID32_IMM8,
ECMA_STCLASSTOGLOBALRECORD_PREF_ID32,
ECMA_STOWNBYVALUEWITHNAMESET_PREF_V8_V8,
ECMA_LDFUNCTION_PREF_NONE,
ECMA_NEWLEXENVWITHNAMEDYN_PREF_IMM16_IMM16,
ECMA_LDBIGINT_PREF_ID32,
ECMA_STOWNBYNAMEWITHNAMESET_PREF_ID32_V8,
};
